package bus;

import java.util.ArrayList;

import dao.QuizzesDao;
import dao.SubjectDao;
import dto.QuizzesDto;
import dto.SubjectDto;

public class QuizzesBus {

	public static ArrayList<QuizzesDto> getQuizzesBySubjectName(
			String subjectName) {

		ArrayList<QuizzesDto> result = new ArrayList<>();
		QuizzesDao quizzesDao = new QuizzesDao();

		ArrayList<QuizzesDto> allQuizzes = quizzesDao.getAllQuiz();
		SubjectDao subjectDao = new SubjectDao();

		for (QuizzesDto quiz : allQuizzes) {
			SubjectDto subject = subjectDao.getSubjectById(quiz.getSubjectId());
			if (subject.getSubjectName().equals(subjectName)
					&& quiz.getIsAvailable()) {
				result.add(quiz);
			}
		}

		return result;
	}

	public static ArrayList<QuizzesDto> getQuizzesBySubjectId(String subjectId) {

		ArrayList<QuizzesDto> result = new ArrayList<>();
		QuizzesDao quizzesDao = new QuizzesDao();

		ArrayList<QuizzesDto> allQuizzes = quizzesDao.getAllQuiz();
		SubjectDao subjectDao = new SubjectDao();

		for (QuizzesDto quiz : allQuizzes) {
			SubjectDto subject = subjectDao.getSubjectById(quiz.getSubjectId());
			if (subject.getSubjectId().equals(subjectId)
					&& quiz.getIsAvailable()) {
				result.add(quiz);
			}
		}

		return result;
	}

	public static SubjectDto getSubjectByQuizNo(int quizNo) {

		SubjectDto result = new SubjectDto();
		QuizzesDao quizzesDao = new QuizzesDao();

		ArrayList<QuizzesDto> allQuizzes = quizzesDao.getAllQuiz();
		SubjectDao subjectDao = new SubjectDao();

		for (QuizzesDto quiz : allQuizzes) {

			if (quiz.getQuizNo() == quizNo) {
				result = subjectDao.getSubjectById(quiz.getSubjectId());
				break;
			}
		}

		return result;
	}

	public static String addQuiz(String subjectName, boolean isAvailable) {

		ArrayList<SubjectDto> arrQuiz = SubjectBus
				.getSubjectByName(subjectName);

		if (arrQuiz.size() > 0) {
			SubjectDto subject = arrQuiz.get(0);
			QuizzesDto quiz = new QuizzesDto(0, isAvailable,
					subject.getSubjectId());
			QuizzesDao quizzesDao = new QuizzesDao();
			return quizzesDao.insertQuiz(quiz);
		}
		return "Add quiz fail!";
	}

}
